Преобразование
десятичной дробное части в двоичное представление
Правило точности. Предположим, дано
десятичное число, которое в виде десятичной дроби представимо с точностью до N знаков. Для того, чтобы соответствующее двоичное число было той же точности,
в нём необходимо записать M
- знаков, так что бы
2m > 10N
А теперь
попробуем получить правило перевода, и для начала рассмотрим пример 5,401
Решение: Целую
часть получим по уже известным правилам, и она равна двоичному числу 101. А
дробную часть разложим по степеням 2.
Шаг 1: 2-2 = 0,25; 0,401 - 0,25 = 0,151. - это
остаток.
Шаг 2: Сейчас
необходимо степенью двойки представить 0,151. Сделаем это: 2-3 =
0,125; 0,151 - 0,125 = 0,026
Таким образом,
дробную часть можно представить в виде 2-2 +2-3 . То же
самое можно записать таким двоичным числом : 0,011. В
первом дробном разряде стоит ноль, это потому, что в нашем разложении степень 2-1
отсутствует.
Из первого и
второго шагов ясно, что это представление не точное и может быть разложение
желательно продолжить. Обратимся к правилу. Оно говорит, что нам нужно столько знаков
М чтобы 103 было меньше чем 2М.
То есть 1000<2M.
То есть в двоичном разложении у нас должно быть не менее десяти знаков, так как
29 = 512 и только 210 = 1024. Продолжим процесс.
Шаг 3: Сейчас
работаем с числом 0,026. Ближайшая к этому числу степень двойки 2-6 =
0,015625; 0,026 - 0,015625 = 0,010375 теперь наше более точное двоичное число
имеет вид: 0,011001. После запятой уже шесть знаков, но этого пока
недостаточно, поэтому выполняем ещё один шаг.
Шаг 4: Сейчас
работаем с числом 0,010375. Ближайшая к этому числу степень двойки 2-7 =
0,0078125;
0,010375 -
0,0078125 = 0,0025625
Шаг 5:
Сейчас работаем с числом 0,0025625. Ближайшая к этому числу степень двойки 2-9
= 0,001953125;
0,0025625 -
0,001953125 = 0,000609375
Последний
получившийся остаток меньше чем 2-10 и если бы мы желали продолжать
приближение к исходному числу, то понадобилось 2-11, но это уже
превосходит требуемую точность, а следовательно
расчёты можно прекратить и записать окончательное двоичное представление
дробной части.
(0,401)10 = (0,011001101)2
Как видно,
преобразование дробной части десятичного числа в двоичное представление немного
более сложно, чем преобразование целой части.
А сейчас
запишем алгоритм преобразования:
Исходные
данные алгоритма: Через А обозначим исходную
правильную десятичную дробь. Пусть эта дробь содержит N знаков.
Алгоритм
Пункт 1.
Определим количество необходимых двоичных знаков М из неравенства 10N <
2M
Пункт 2: Цикл
вычисления цифр двоичного представления (цифры после нуля). Номер цифры
обозначим символом К.
Номер цифры = 1
Если 2-К > А
То
в
запись двоичного числа добавляем ноль
Иначе
в
запись двоичного числа добавляем 1
А
= А - 2-К
К
= К + 1
Если К > М
То
работа алгоритма завершена
Иначе переходим на пункт 2.